Searched: \.*
Results from GPCE11 web

Abstract: ZL is a C++-compatible language in which high-level constructs, such as classes, are defined using macros over a C-like core language. This approach makes many parts of the language easily customizable. For example, since the class construct can be defined using macros, a programmer can have complete control over the memory layout of objects. Using this capability, a programmer can mitigate certain problems in software evolution such as fragile ABIs (Application Binary Interfaces) due to software changes and incompatible ABIs due to compiler changes. In this paper, we outline the problem of fragile and incompatible ABIs and show how ZL can be used to solve them.

Abstract: This paper deals with embedded systems software and the modification of its architecture and behavior at execution-time. Incautious implementation of such capabilities demands heavy memory and performance overrun. To accomplish such software evolution activities in resource-constrained embedded systems, we propose a component-based run-time evolution infrastructure that reconciles richness of evolution alternatives and performance requirements. Our proposition is based on off-site components reifications, representations of components which allow us to treat evolution concerns remotely and hence to alleviate the workload to be processed by the embedded device. Memory and processor-time resources consumption evaluation on a real-world scenario show the efficiency and pertinence of our approach.

Abstract: Delta modeling is an approach to facilitate automated product derivation for software product lines. It is based on a set of deltas specifying modifications that are incrementally applied to a core product. The applicability of deltas depends on feature-dependent conditions. This paper presents abstract delta modeling, which explores delta modeling from an abstract, algebraic perspective. Compared to previous work, we take a more flexible approach with respect to conflicts between modifications and introduce the notion of conflict resolving deltas. We present conditions on the structure of deltas to ensure unambiguous product generation.

  • Jeroen Arnoldus, Mark Van Den Brand and Alexander Serebrenik: Less is More: Unparser-completeness of Metalanguages for Template Engines

  • Marko Rosenmueller, Norbert Siegmund, Mario Pukall and Sven Apel: Tailoring Dynamic Software Product Lines

  • Don Batory, Peter Höfner and Jongwook Kim: Feature Interactions, Products, and Composition

  • Vidar Slåtten, Frank Alexander Kraemer and Peter Herrmann: Towards Automatic Generation of Formal Specifications to Validate and Verify Reliable Distributed Systems - A Method Exemplified by an Industrial Case Study

  • Yulin Li and Gordon Novak: Generation of Geometric Programs Specified by Diagrams

  • Kenichi Asai: Reflection in Direct Style

  • Abdelhakim Hannousse, Rémi Douence and Gilles Ardourel: Static Analysis of Aspect Interaction and Composition in Component Models

  • Lais Neves, Leopoldo Teixeira, Demóstenes Sena, Vander Alves, Uirá Kulesza and Paulo Borba: Investigating the Safe Evolution of Software Product Lines

  • Ricky T. Lindeman, Lennart C. L. Kats and Eelco Visser: Declaratively Defining Domain-Specific Language Debuggers

  • Sander Vermolen, Guido Wachsmuth and Eelco Visser: Generating Database Migrations for Evolving Web Applications

  • Sebastian Erdweg, Lennart C. L. Kats, Tillmann Rendel, Christian Kästner, Klaus Ostermann and Eelco Visser: Growing a Language Environment with Editor Libraries

  • William R Otte, Aniruddha Gokhale, Douglas C. Schmidt and Johnny Willemsen: Infrastructure for Component-Based DDS Application Development

  • Márcio Ribeiro, Felipe Queiroz, Paulo Borba, Társis Tolêdo, Claus Brabrand and Sérgio Soares: On the Impact of Feature Dependencies when Maintaining Preprocessor-based Software Product Lines

  • John Freeman, Jaakko Jarvi, Wonseok Kim, Mat Marcus and Sean Parent: Helping Programmers Help Users

  • Nathaniel Nystrom, Derek White and Kishen Das: Firepile: run-time compilation for GPUs in Scala

  • Shahram Esmaeilsabzali, Bernd Fischer and Joanne Atlee: Monitoring Aspects for the Customization of Automatically Generated Code for Big-Step Models

  • Patrick Gaubatz, Stefan Sobernig, Mark Strembeck and Uwe Zdun: The Effects of Programming Interface Design on Development Effort: An Experiment on DSL Integration in the Domain of Federated Identity Management

  • Andreas Steck, Alex Lotz and Christian Schlegel: Model-Driven Engineering and Run-Time Model-Usage in Service Robotics

Abstract: Plug-in components are a means for making feature-rich applications customizable. Combined with plug-and-play composition, end users can assemble customized applications without programming. If plug-and-play composition is also dynamic, applications can be reconfigured on the fly to load only components the user needs for his current work. We have created Plux.NET, a plug-in framework that supports dynamic plug-and-play composition. The basis for plug-and-play in Plux is the composer which replaces programmatic composition by automatic composition. Components just specify their requirements and provisions using metadata. The composer then assembles the components based on that metadata by matching requirements and provisions. When the composer needs to reuse general-purpose components in different parts of an application, the component model requires genericity. The composer depends on metadata that specify which components should be connected and for general-purpose components those metadata need to be different on each reuse. We present an approach for generic plug-ins with component templates and an implementation for Plux. The general-purpose components become templates and the templates get parameterized when they are composed.

Abstract: While dynamic code evolution in object-oriented systems is an important feature supported by dynamic languages, there is currently only limited support for dynamic code evolution in high-performance, state-of-the-art runtime systems for statically typed languages, such as the Java Virtual Machine. In this tool demonstration, we present the Dynamic Code Evolution VM, which is based on a recent version of Oracle's state-of-the-art Java HotSpot(TM) VM and allows unlimited changes to loaded classes at runtime. Based on the Dynamic Code Evolution VM, we developed an enhanced version of the Mantisse GUI builder (which is part of the NetBeans IDE) that allows adding GUI components without restarting the application under development. Furthermore, we redesigned the dynamic AOP framework HotWave to take advantage of the enhanced dynamic code evolution capabilities. The new version, HotWave2, now supports most AspectJ constructs, including "around()" advice and static cross-cutting. We will demonstrate both the enhanced Mantisse GUI builder as well as HotWave2, weaving several aspects for dynamic analysis in sizable applications at runtime.

Abstract: Operation contracts consisting of pre- and postconditions are a well-known means of specifying operations. In this paper we deal with the problem of operation contract simulation, i.e. determining operation results satisfying the postconditions based on input data supplied by the user; simulating operation contracts is an important technique for requirements validation and prototyping. Current approaches to operation contract simulation exhibit poor performance for large sets of input data or require additional guidance from the user. We show how these problems can be alleviated and describe an efficient as well as fully automatic approach. It is implemented in our tool OCLexec that generates from UML/OCL operation contracts corresponding Java implementations which call a constraint solver at runtime. The generated code can serve as a prototype. A case study demonstrates that our approach can handle problem instances of considerable size.

Abstract: Function-block-based modeling is often used to develop embedded systems, particularly as system variants can be developed rapidly from existing modules. Generative approaches can simplify the handling and development of the resulting high variety of function-block-based models. But they often require the development of new generic models that do not utilize existing ones. Reusing existing models will significantly decrease the effort to apply generative programming. This work introduces an automatic approach to recognize variants in a set of models and identify the variation points and their dependencies within the variants. As result it offers automatically generated feature models and ICCL content to generate the given variants.

GPCE2011

Please help us promote GPCE by including the following HTML code in your webpage, which will include the above image link to our website (you can change the width and height proportionally)

<a href="https://program-transformation.org/GPCE11" target="_blank">
<img title="Generative Programming and Component Engineering 2011" src="https://program-transformation.org/pub/GPCE11/Banner/gpce2011-banner.png" alt="GPCE2011" width="176" height="218"/>
</a>

CALL FOR PAPERS (txt?,pdf?)


Generative Programming and Component Engineering (GPCE'11)

ACM logo ACM logo

Tenth International Conference
October 22-23, 2011
Portland, Oregon, USA
(collocated with SPLASH 2011)

Sponsored by ACM and SGT




Important Dates (NEW)

Scope

Generative and component approaches are revolutionizing software development just as automation and componentization revolutionized manufacturing. Key technologies for automating program development are Generative Programming for program synthesis, Component Engineering for modularity, and Domain-Specific Languages (DSLs) for compact problem-oriented programming notations.

The International Conference on Generative Programming and Component Engineering is a venue for researchers and practitioners interested in techniques that use program generation and component deployment to increase programmer productivity, improve software quality, and shorten the time-to-market of software products. In addition to exploring cutting-edge techniques of generative and component-based software, our goal is to foster further cross-fertilization between the software engineering and the programming languages research communities.

Submissions

Research papers

10 pages in SIGPLAN proceedings style (sigplanconf.cls, see http://www.sigplan.org/authorInformation.htm) reporting original and unpublished results of theoretical, empirical, conceptual, or experimental research that contribute to scientific knowledge in the areas listed below (the PC chair can advise on appropriateness).

Tool demonstrations

Tool demonstrations should present tools that implement generative and component-based software engineering techniques, and are available for use. Any of the GPCE'11 topics of interest are appropriate areas for tool demonstrations. Purely commercial tool demonstrations will not be accepted. Submissions should contain a tool description of up to 6 pages in SIGPLAN proceedings style (sigplanconf.cls) and a demonstration outline of up to 2 pages text plus 2 pages screen shots. The six page description will, if the demonstration is accepted, be published in the proceedings. The 2+2 page demonstration outline will only be used by the PC for evaluating the submission.

Workshops and Tech Talks

Workshops are organized by SPLASH - see the SPLASH Call for Workshops for details. Tech talks are organized by GPCE as one or two talks at the end of each day of the conference. The talks will be about an hour in length and, similarly to tutorials, do not (need to) present original new research material. Unlike longer tutorials, these talks cannot be very interactive, and should instead aim to be 'keynote' style presentations. Please see the tech talks call for contributions for details.

Topics

GPCE seeks contributions in software engineering and in programming languages related (but not limited) to:

  • Generative programming
    • Reuse, meta-programming, partial evaluation, multi-stage and multi-level languages, step-wise refinement, generic programming, automated code generation
    • Semantics, type systems, symbolic computation, linking and explicit substitution, in-lining and macros, templates, program transformation
    • Runtime code generation, compilation, active libraries, synthesis from specifications, development methods, generation of non-code artifacts, formal methods, reflection

  • Generative techniques for
    • Product-line architectures
    • Distributed, real-time and embedded systems
    • Model-driven development and architecture
    • Resource bounded/safety critical systems.

  • Component-based software engineering
    • Reuse, distributed platforms and middleware, distributed systems, evolution, patterns, development methods, deployment and configuration techniques, formal methods

  • Integration of generative and component-based approaches

  • Domain engineering and domain analysis
    • Domain-specific languages including visual and UML-based DSLs

  • Separation of concerns
    • Aspect-oriented and feature-oriented programming,
    • Intentional programming and multi-dimensional separation of concerns

  • Applications of the above in industrial scenarios or to real-world problems, bridging the gap between theory and practice

  • Empirical studies
    • Original work in any of the areas above where there is a substantial empirical dimension to the work being presented. Such contributions might take the form of a case/field study, comparative analysis, controlled experiment, survey or meta-analysis of previous studies.

Incremental improvements over previously published work should have been evaluated through systematic, comparative, empirical, or experimental evaluation. Submissions must adhere to SIGPLAN's republication policy (http://www.sigplan.org/republicationpolicy.htm). Please contact the program chair if you have any questions about how this policy applies to your paper (chairs@gpce.org).

Organization

Chairs (chairs@gpce.org)

Program Committee

CALL FOR TECH TALKS


Generative Programming and Component Engineering (GPCE'11)

ACM logo ACM logo

Tenth International Conference
October 22-23, 2011
Portland, Oregon, USA
(collocated with SPLASH 2011)

Sponsored by ACM and SGT




Important dates

  • Submission of tech talk proposals: August 7, 2011
  • Author notification: August 26, 2011

Scope

Tech talks are organized by GPCE as one or two talks at the end of each day of the conference (Saturday October 22nd and Sunday October 23rd). The talks will be about an hour in length; longer than a regular conference talk, but shorter than the customary half or full day tutorials at other conferences. In contrast to research talks, tech talks do not (have to) present original new research material, but should rather focus on putting research into perspective for a broader audience. In contrast to longer tutorials, these talks cannot be very interactive or rely on the audience participating by using tools. Rather, they should aim to be 'keynote' style presentations, emphasizing the essence (but not avoiding depth).

They can be thought of as distilled tutorials that provide a focused and in-depth treatment of specific research results considered relevant to the GPCE community.

Moreover, the tech talks are included in the conference registration and are not charged separately. We hope that this will ensure high impact of the tech talks.

Submission

If you are interested in presenting a tech talk at GPCE, please send a short proposal (about two pages) to the conference chairs (chairs@gpce.org) by August 7, 2011.

The proposal should consist of

  1. title
  2. abstract (250 words)
  3. name of presenter
  4. short bio (250 words)
  5. brief outline of tech talk
  6. relevance for GPCE/SPLASH audience

Items 1 to 4 should be usable on the website.

We will make a selection of tech talks based on relevance (topic-wise) for the conference and expected interest in the tech talk. Tech talk proposers will be notified of the decision by August 26, 2011.

Abstract: Some limitations of object-oriented mechanisms are known to cause code clones (e.g., extension using inheritance). Novel programming paradigms such as feature-oriented programming (FOP) aim at alleviating these limitations. However, it is an open issue whether FOP is really able to avoid code clones or whether it even facilitates (FOP-specific) clones. To address this issue, we conduct an empirical analysis on ten feature-oriented software product lines with respect to code cloning. We found that there is a considerable amount of clones in feature-oriented software product lines and that a large fraction of these clones is FOP-specific (i.e., caused by limitations of feature-oriented mechanisms). Based on our results, we initiate a discussion on the reasons for FOP-specific clones and on how to cope with them.

Abstract: Aspect-oriented programming provides a convenient high-level model to define several kinds of dynamic analyses, in particular thanks to recent advances in exhaustive weaving in core libraries. Casting dynamic analyses as aspects allows the use of a single weaving infrastructure to apply different analyses to the same base program, simultaneously. However, even if dynamic analysis aspects are mutually independent, their mere presence perturbates the observations of others: this is due to the fact that aspectual computation is potentially visible to all aspects. Because current aspect composition approaches do not address this kind of computational interference, combining different analysis aspects yields at best unpredictable results. It is also impossible to flexibly combine various analyses, for instance to analyze an analysis aspect. In this paper we show how the notion of execution levels makes it possible to effectively address these composition issues. In order to realize this approach, we explore the practical and efficient integration of execution levels in a mainstream aspect language, AspectJ. We report on a case study of composing two out-of-the-box analysis aspects in a variety of ways, highlighting the benefits of the approach.

Generative Programming and Component Engineering (GPCE'11)

ACM logo ACM logo

Tenth International Conference
October 22-23, 2011
Portland, Oregon, USA
(collocated with SPLASH 2011)

Sponsored by ACM and SGT


General Chair:

Program Chair:

Program Committee Members:

Publicity Chair:

Steering Committee:

Registration: Salon Foyer (Hilton Executive Tower, downstairs)

Conference location: Salon Ballroom I and II (Hilton Executive Tower, downstairs)

Saturday, October 22

8.00 Breakfast (outside conference room)
8.30 Welcome (Ewen Denney)
8.45 Keynote by Matthias Felleisen: Multilingual Component Programming in Racket (Slides)? (chair: Ulrik Pagh Schultz)
9.45 Break
10.15 Session: Software product lines part 1, Software components (chairs: Jaakko Jaarvi, Eelco Visser)
11.55 Lunch
14.00 Session: Applications (chair: Bernd Fischer)
15.15 Break
15.45 Session: Software product lines, part 2 (chair: Jaakko Jaarvi)
16.35 Tech talk by Olivier Danvy: Pragmatics for Formal Semantics Hands-on talk, bring your laptop! (Slides)? (chair: Ulrik Pagh Schultz)
17.35 End of day

Sunday, October 23

8.00 Breakfast (outside conference room)
8.45 Keynote talk by Gary Shubert: Application of Model Based Development to Flexible Code Generation (Slides)? (chair: Ewen Denney)
9.45 Break
10.15 Session: Runtime (chair: Julia Lawall)
11.55 Lunch
14.00 Session: Programming (chair: Walter Binder)
15.15 Break
15.45 Session: Theory (chair: Don Batory)
16.35 Tech talk by John Launchbury: Theorem-based Circuit Derivation in Cryptol (Slides)? (chair: Ewen Denney)
17.35 PC chair report, closing remarks (Ulrik Pagh Schultz)
17.50 End of day
19.30 Social event at Rogue Public House
Registration for GPCE, via collocated conference SPLASH, is now open. Early registration deadline for GPCE/SPLASH is September 23. We hope that you will register before this deadline and also plan a stay in our conference hotel, which holds our room block only until September 22. Stay in our room block and enjoy the benefits of close location and more, including free wired internet.
GPCE 2011 will be held at Hilton Portland and Executive Tower, 921 SW Sixth Avenue, Portland, Oregon, co-located with SPLASH 2011.

See hotel website for more information.

Portland

Portland is a city located in northwestern part of United States, in the state of Oregon. Portland, with city population of around 582,130 and metropolitan area population of around 2.2 million, is Oregon's most populous city. The city is well known for its environmental friendliness, nice parks, botanic gardens and museums. It is also a great place to dine, with its excellent restaurants and over 25 excellent microbreweries. Portland's Marine west coast climate makes it an ideal place to grow roses, so much so that it has been known as the "City of Roses" that has many rose gardens. Also, Portland's close proximity to beautiful sceneries including Mount Hood, Columbia River, and Multnomah Falls makes it a great place to tour.

Travel

Portland can be reached by air, rail and road.

Planes

All major airlines fly to Portland. See Portland International Airport website for more information.

Directions to the Hotel

The Hilton is located in downtown Portland. Here is a map:


View Larger Map

Abstract:

Tool support is vital to the effectiveness of domain-specific languages. With language workbenches, domain-specific languages and their tool support can be generated from a combined, high-level specification. This paper shows how such a specification can be extended to describe a debugger for a language. To realize this, we introduce a meta-language for coordinating the debugger that abstracts over the complexity of writing a debugger by hand. We describe the implementation of a language-parametric infrastructure for debuggers that can be instantiated based on this specification. The approach is implemented in the Spoofax language workbench and validated through realistic case studies with the Stratego transformation language and the WebDSL web programming language.

Abstract: Smooth integration of domain-specific languages into a general purpose host language requires absorbing of domain code written in arbitrary syntax. The integration should cause minimal syntactical and semantic overhead and introduce minimal dependency on external tools. In this paper we discuss a DSL integration technique for the C++ programming language. The solution is based on compile-time parsing of the DSL code. The parser generator is a C++ template metaprogram reimplementation of a runtime Haskell parser generator library. The full parsing phase is executed when the host program is compiled. The library uses only standard C++ language features, thus our solution is highly portable. As a demonstration of the power of this approach, we present a highly efficient and type-safe version of printf and the way it can be constructed using our library. Despite the well known syntactical difficulties of C++ template metaprograms, building embedded languages using our library leads to self-documenting C++ source code.

Abstract: The CPP is the dominant tool of choice for the implementation of variability in large-scale configurable software. Linux, probably the most-configurable piece of software ever, employs more than 10,000 preprocessor variables for this purpose. However, this de-facto variability tends to be ``hidden in the code''; which on the long term leads to varibility defects, such as dead code or inconsistencies with respect to the intended (modelled) variability of the software. This calls for tool support for the efficient extraction of (and reasoning over) CPP-based variability.

We suggest a novel approach to extract CPP-based variability. Our tool transforms CPP-based variability in O(n) complexity into a propositional formula that ``mimics'' all valid effects of conditional compilation and can be queried with standard SAT or BDD packages.

Our evaluation results demonstrate the scaleability and practicability of the approach. A dead-block-analysis on the complete Linux source tree takes less than 15 minutes; we thereby have revealed 4 defects, 2 of which meanwhile have been confirmed as new (and long-lasting) bugs.

Abstract: The relationship between feature modules and feature interactions is not well-understood. To explain classic examples of feature interaction, we show that features are not only composed sequentially, but also by cross-product and interaction operations that heretofore were implicit in the literature. Using the CIDE tool as our starting point, we (a) present a formal model of these operations, (b) show how it connects and explains previously unrelated results in Feature Oriented Software Development (FOSD), and (c) describe a tool, based on our formalism, that demonstrates how changes in composed documents can be back-propagated to their original feature module definitions, thereby improving FOSD tooling.

Application of Model Based Development to Flexible Code Generation

Gary Shubert, Lockheed Martin Space Systems Company, USA

This address will present the author's views and perspectives on the past, present and future use of model based development techniques to enable the automated generation of source code and other forms of programming. This address will discuss past and present use of model based development and automated code generation at Lockheed Martin, with special emphasis on NASA's Orion Multi-Purpose Crew Vehicle Program. This address will discuss the advantages and disadvantages, associated with the current state of the practice techniques and tools, used to automatically generate source code from general purpose and domain specific models. This address will discuss the obstacles and enablers, associated with achieving the desired future state of complete and efficient automated generation of programming through transformation of general purpose and domain specific models.

(Talk in PDF)?

Abstract:

WebDSL is a domain-specific language for the implementation of dynamic web applications with a rich data model. It provides developers with object-oriented data modeling concepts but abstracts over implementation details for persisting application data in relational databases. When the underlying data model of an application evolves, persisted application data has to be migrated. While implementing migration at the database level breaks the abstractions provided by WebDSL, an implementation at the data model level requires to intermingle migration with application code. In this paper, we present a domain-specific language for the coupled evolution of data models and application data. It allows to specify data model evolution as a separate concern at the data model level and can be compiled to migration code at the database level. Its linguistic integration with WebDSL enables static checks for evolution validity and correctness.

Abstract:

The GeoGram system generates programs for geometric computations by combining generic software components as specified by diagrams constructed using a graphical interface. The user specifies known and desired quantities. As diagrams are constructed, the system maintains symbolic geometric facts describing the construction. Inferences based on the diagram are used to derive new facts and to introduce new objects based on geometric reasoning, to filter choices presented to the user, to interpret the user’s intention in ambiguous cases, to detect over-specification, and to generate the program. A knowledge base of descriptions of generic software components is used to prove that features of the geometry can be computed from known values. These local proofs are combined to guide generation of a program that computes the desired values from inputs. The library of generic geometric program components is used to generate both in-line code and specialized subroutines; partial evaluation improves the efficiency of the generated code. The resulting program is automatically translated into the desired language. The program can also be run interactively to simulate the geometry by generating graphical traces on the diagram as input quantities are varied.

Abstract:

Large software projects consist of code written in a multitude of different (possibly domain-specific) languages, which are often deeply interspersed even in single files. While many proposals exist on how to integrate languages semantically and syntactically, the question of how to support this scenario in integrated development environments (IDEs) remains open: How can standard IDE services, such as syntax highlighting, outlining, or reference resolving, be provided in an extensible and compositional way, such that an open mix of languages is supported in a single file? Based on our library-based syntactic extension language for Java, SugarJ, we propose to make IDEs extensible by organizing editor services in editor libraries. Editor libraries are libraries written in the object language, SugarJ, and hence activated and composed through regular import statements on a file-by-file basis. We have implemented an IDE for editor libraries on top of SugarJ and the Eclipse-based Spoofax language workbench. We have validated editor libraries by evolving this IDE into a fully-fledged and schema-aware XML editor as well as an extensible LATEX editor, which we used for writing this paper.

Abstract:

User interfaces exhibit a wide range of features that are designed to assist users. Interaction with one widget may trigger value changes, disabling, or other behaviors in other widgets. Such automatic behavior may be confusing or disruptive to users. Research literature on user interfaces offers a number of solutions, including interface features for explaining or controlling these behaviors. To help programmers help users, the implementation costs of these features need to be much lower. Ideally, they could be generated for “free.” This paper shows how several help and control mechanisms can be implemented as algorithms and reused across interfaces, making the cost of their adoption negligible. Specifically, we describe generic help mechanisms for visualizing data flow and explaining command deactivation, and a mechanism for controlling the flow of data. A reusable implementation of these features is enabled by our property model framework, where the data manipulated through a user interface is modeled as a constraint system.

Abstract: Writing correct and efficient concurrent programs still remains a challenge. Explicit concurrency is difficult, error prone, and creates code which is hard to maintain and debug. This type of concurrency also treats modular program design and concurrency as separate goals, where modularity often suffers.

To solve these problems, we are designing a new language that we call Panini. In this paper, we focus on Panini's asynchronous, typed events, which reconcile the modularity goal promoted by the implicit invocation design style with the concurrency goal of exposing potential concurrency between the execution of subjects and observers.

Since modularity is improved and concurrency is implicit in Panini, programs are easier to reason about and maintain. Furthermore, races and deadlocks are avoided entirely, yielding programs with a guaranteed sequential semantics.

To evaluate our language design and implementation we show several examples of its usage as well as an empirical study of program performance.

We found that not only is developing and understanding Panini programs significantly easier compared to standard concurrent object-oriented programs, but performance of Panini programs is also comparable to their equivalent hand-tuned versions written using Java's fork-join framework.

Important Dates

  • Submission of tech talks: August 7, 2011
  • Tech talks notification: August 26, 2011

  • Conference: October 22-23, 2011

Abstract: Garcia introduces a calculus for type-reflective metaprogramming that provides much of the power and flexibility of C++ templates and solves many of its problems. However, one of the problems that remains is that the residual program is not type checked until after meta computation is complete. Ideally, one would like the type system of the metaprogram to also guarantee that the residual program will type check, as is the case in MetaML. However, in a language with type-reflective metaprogramming, type expressions in the residual program may be the result of meta computation, making the MetaML guarantee next to impossible to achieve.

In this paper we offer an approach to detecting errors earlier without sacrificing flexibility: we incrementally type check code fragments as they are created and spliced together during meta computation. The incremental type system is a variant of the gradual type system of Siek and Taha, in which we use type variables to represent type expressions that are not yet normalized and a new dynamic variation on existential types to represent residual code fragments. A type error in a code fragment is treated as a run-time error of the meta computation. We show that the incremental type checker can be implemented efficiently and we prove that if a well-typed metaprogram generates a residual program, then the residual program is also well-typed.

Abstract:

Enterprise distributed real-time and embedded (DRE) systems are increasingly being developed with the use of component-based software techniques. Unfortunately, commonly used component middleware platforms provide limited support for event-based publish/subscribe (pub/sub) mechanisms that meet both quality-ofservice (QoS) and configurability requirements of DRE systems. On the other hand, although pub/sub technologies, such as OMG Data Distribution Service (DDS), support a wide range of QoS settings, the level of abstraction they provide make it hard to con- figure them due to the significant source-level configuration that must be hard-coded at compile time or tailored at run-time using proprietary, ad hoc configuration logic. Moreover, developers of applications using native pub/sub technologies must write large amounts of boilerplate “glue” code to support run-time configuration of QoS properties, which is tedious and error-prone. This paper describes a novel, generative approach that combines the strengths of QoS-enabled pub/sub middleware with component-based middleware technologies. In particular, this paper describes the design and implementation of DDS4CIAO which addresses a number of inherent and accidental complexities in the DDS4CCM standard. DDS4CIAO simplifies the development, deployment, and configuration of component-based DRE systems that leverage DDS’s powerful QoS capabilities by provisioning DDS QoS policy settings and simplifying the development of DDS applications.

Abstract:

The adoption of a product line strategy can bring significant productivity and time to market improvements. However, evolving a product line is risky because it might impact many products and their users. So when evolving a product line to introduce new features or to improve its design, it is important to make sure that the behavior of existing products is not affected. In fact, to preserve the behavior of existing products one usually has to analyze different artifacts, like feature models, configuration knowledge and the product line core assets. To better understand this process, in this paper we discover and analyze concrete product line evolution scenarios and, based on the results of this study, we describe a number of safe evolution templates that developers can use when working with product lines. For each template, we show examples of their use in existing product lines. We evaluate the templates by also analyzing the evolution history of two different product lines and demonstrating that they can express the corresponding modifications and then help to avoid the mistakes that we identified during our analysis

Abstract: Type inference is the process of constructing a typing derivation while gradually discovering type information. During this process, inference algorithms typically make subtle decisions based on the derivation constructed so far.

Because a typing derivation is a decorated tree we aim to use attribute grammars as the main implementation tool. Unfortunately, we can neither express iteration, nor express decisions based on intermediate derivations in such grammars.

Here, we present the language |rulerfront|, a conservative extension to ordered attribute grammars, that deals with the aforementioned problems. We show why this extension is suitable for the description of constraint-based inference algorithms.

Abstract: Manually implementing equals (for object comparisons) and hashCode (for object hashing) methods in large software projects is tedious and error-prone. This is due to many special cases, such as field shadowing, comparison between different types, or cyclic object graphs. Here, we present JEqualityGen, a source code generator that automatically derives implementations of these methods.

JEqualityGen proceeds in two states: it first uses source code reflection in MetaAspectJ to generate aspects that contain the method implementations, before it uses weaving on the bytecode level to insert these into the target application. JEqualityGen generates not only correct, but efficient source code that on a typical large-scale Java application exhibits a performance improvement of more than two orders of magnitude in the equality operations generated, compared to an existing system based on runtime reflection. JEqualityGen achieves this by generating runtime profiling code that collects data. This enables it to generate optimised method implementations in a second round.

Matthias Felleisen is a Trustee Professor of Computer Science at Northeastern University, Boston, and the founder of PLT, a distributed research group. His research covers all aspects of programming languages and the systematic design of programs. One major theme concerns the connection between untyped languages and type systems, another one the development of languages for creating domain-specific languages. Felleisen works with his colleagues in PLT to make these goals concrete with the design and implementation of Racket.

Invited talk: Multilingual Component Programming in Racket

Gary Shubert is currently a Senior Software Manager for Lockheed Martin Space Systems Company and leads systems and software model based engineering process development and demonstration activities for the Military Support Program - System Evolution Test Bed and for the Space Vehicle Integration Laboratory. Gary joined Lockheed Martin in 1989 and has served in roles as an embedded flight software developer, flight software architect, and flight software manager, for launch vehicle, uncrewed and crewed spacecraft systems. Gary served as the software manager for the Orion proposal activities and as the flight software manager for the Orion development program. Gary has served as an avionics lead, software lead, and software architect, for the Space Based Radar, Reusable Space Transportation System, Evolved Expendable Launch Vehicle (Atlas V), and Space Common Data Link programs, and as a flight software engineer for the Titan IV and Advanced Interceptor Technologies programs. Gary has been a practitioner and a champion of model based software engineering and transformational automated code generation since 1989. He is the architect for three generations of Lockheed Martin developed automated code generators used on multiple production programs. Gary is an instructor for Lockheed Martin’s Object Centric Modeling and Ada programming language courses. His background prior to Lockheed Martin includes being a flight software engineer in the Control Systems Advanced Development department of Northrop Aircraft, and an independent verification and validation engineer and ground software engineer for the Mission Software department of TRW Defense Systems. He holds a bachelor’s degree in Aeronautical/Astronautical Engineering from the University of Illinois, and a master’s degree in Aeronautical/Astronautical Engineering from the University of Southern California.

Invited talk: Application of Model Based Development to Flexible Code Generation

Abstract:

A code generator is a program translating an input model into code. In this paper we focus on template-based code generators in the context of the model view controller architecture (MVC). The language in which the code generator is written is known as a metalanguage in the code generation parlance. The metalanguage should be, on the one side, expressive enough to be of practical value, and, on the other side, restricted enough to enforce the separation between the view and the model, according to the MVC. In this paper we advocate the notion of unparser-complete metalanguages as providing the right level of expressivity. An unparsercomplete metalanguage is capable of expressing an unparser, a code generator that translates any legal abstract syntax tree into an equivalent sentence of the corresponding context-free language. A metalanguage not able to express an unparser will fail to produce all sentences belonging to the corresponding context-free language. A metalanguage able to express more than an unparser will also be able to implement code violating the model/view separation. We further show that a metalanguage with the power of a linear deterministic tree-to-string transducer is unparser-complete. Moreover, this metalanguage has been successfully applied in a nontrivial case study where an existing code generator is refactored using templates.

Abstract: Software engineering demands generality and abstraction, performance demands specialization and concretization. Generative programming can provide both, but developing high-quality program generators takes a large effort, even if a multi-stage programming language is used.

We present lightweight modular staging, a library-based multi-stage programming approach that breaks with the tradition of syntactic quasi-quotation and instead uses only types to distinguish between binding times. Through extensive use of component technology, lightweight modular staging makes an optimizing compiler framework available at the library level, allowing programmers to tightly integrate domain-specific abstractions and optimizations into the generation process.

We argue that lightweight modular staging enables a form of language virtualization, i.e. allows to go from a pure-library embedded language to one that is practically equivalent to a stand-alone implementation with only modest effort.

A Language for Software Variation Research

Martin Erwig, Oregon State University, USA

Managing variation is an important problem in software engineering that takes different forms, ranging from version control and configuration management to software product lines. In this talk, I present our recent work on the choice calculus, a fundamental representation for software variation that can serve as a common language of discourse for variation research, filling a role similar to lambda calculus in programming language research.

After motivating the design of the choice calculus and sketching its semantics, I will discuss several potential application areas.

Abstract: Modular robots are mechatronic devices that enable the construction of highly versatile and flexible robotic systems that can dynamically modify their assembled mechanical structure. The key feature that enables this dynamic modification is the capability of the individual modules to connect to each other in multiple ways and thus generate a number of different mechanical systems, in contrast with the monolithic, fixed structure of conventional robots. The mechatronic flexibility, however, complicates the development of models and programming abstractions for modular robots, since manually describing and enumerating the full set of possible interconnections is tedious and error-prone for real-world robots.

In order to allow for a general formulation of spatial abstractions for modular robots and to ensure correct and streamlined generation of code dependent on mechanical properties, we have developed the Mechatronics Description Language (MDL). MDL is a domain-specific language, which can model the kinematic structure of individual robot modules and declaratively describe their possible interconnections, rather than requiring the user to enumerate them in their entirety. From this description, the MDL compiler generates the code that is needed to simulate the resulting robots within Webots, a widely used commercial robot simulator, and the software component needed for spatial structure computations by a virtual machine-based runtime system, which we have developed and use for programming physical modular robots.

Abstract:

The development of service robots has gained more and more attention over the last years. A major challenge on the way towards industrial-strength service robotic systems is to make the step from code-driven to model-driven engineering. In this work we propose to put models into the focus of the whole life-cycle of robotic systems covering design-time as well as run-time. We describe how to explicate parameters, properties and resource information in the models at design-time and how to take these information into account by the run-time system of the robot to support its decision making process. We underpin our work by an exhaustive real-world example which is completely developed with our tools.

Abstract: Programs in domain-specific embedded languages (DSELs) can be represented in the host language in different ways, for instance implicitly as libraries, or explicitly in the form of abstract syntax trees. Each of these representations has its own strengths and weaknesses. The implicit approach has good composability properties, whereas the explicit approach allows more freedom in making syntactic program transformations.

Traditional designs for DSELs fix the form of representation, which means that it is not possible to choose the best representation for a particular interpretation or transformation. We propose a new design for implementing DSELs in Scala which makes it easy to use different program representations at the same time. It enables the DSL implementor to define modular language components and to compose transformations and interpretations for them.

Abstract:

The output of a code generator is assumed to be correct and not usually intended to be read or modified; yet programmers are often interested in this, e.g., to monitor a system property. Here, we consider code customization for a family of code generators associated with big-step executable modelling languages (e.g., statecharts). We introduce a customization language that allows us to express customization scenarios for the generated code independently of a specific big-step execution semantics. These customization scenarios are all different forms of runtime monitors, which lend themselves to a principled, uniform implementation for observation and code extension. A monitor is given in terms of the enabledness and execution of the transitions of a model and a reachability relation between two states of the execution of the model during a big step. For each monitor, we generate the aspect code that is incorporated into the output of a code generator to implement the monitor at the generated-code level. Thus, we provide means for code analysis through using the vocabulary of a model, rather than the detail of the generated code. Our technique not only requires the code generators to reveal only limited information about their code generation mechanisms, but also keeps the structure of the generated code intact. We demonstrate how various useful properties of a model, or a language, can be checked using our monitors.

Abstract:

During Software Product Line (SPL) maintenance tasks, Virtual Separation of Concerns (VSoC) allows the programmer to focus on one feature and hide the others. However, since features depend on each other through variables and control-flow, feature modularization is compromised since the maintenance of one feature may break another. In this context, emergent interfaces can capture dependencies between the feature we are maintaining and the others, making developers aware of dependencies. To better understand the impact of code level feature dependencies during SPL maintenance, we have investigated the following two questions: how often methods with preprocessor directives contain feature dependencies? How feature dependencies impact maintenance effort when using VSoC and emergent interfaces? Answering the former is important for assessing how often we may face feature dependency problems. Answering the latter is important to better understand to what extent emergent interfaces complement VSoC during maintenance tasks. To answer them, we analyze 43 SPLs of different domains, size, and languages. The data we collect from them complement previous work on preprocessor usage. They reveal that the feature dependencies we consider in this paper are reasonably common in practice; and that emergent interfaces can reduce maintenance effort during the SPL maintenance tasks we regard here.

Please print a poster and a flyer and share them with others in your institution.

The Hitchhiker's Guide to Software Languages

Ralf Lämmel, University of Koblenz-Landau, Germany.

There is only that much space in the CS curriculum, and there are always new subjects that should be accommodated by the curriculum. For instance, in our community, we would want all graduates to leave university with a modest background in technical spaces, software languages, and meta-programming; also, with conceptually informed and reasonably timeless skills to efficiently master related programming techniques and technologies. In reality, the curricula of few CS departments meet this expectation.

In this talk, I will discuss such curricula-related expectations of our community and the suboptimal situation at CS departments—as I perceive them. More importantly, I will allude to a revision of the CS curriculum that could optimize matters and may stand a chance for mid-term adoption.

Acknowledgements
I gratefully acknowledge collaboration with Jean-Marie Favre (OneTree Technologies, Luxembourg) and Dragan Gašević (Athabasca University, Canada) on the subject of this talk.

Extended abstract: pdf?

Abstract:

A reflective language enables us to access, inspect, and/or modify the language semantics from within the same language framework. Although the degree of semantics exposure differs from one language to another, the most powerful approach, referred to as the behavioral reflection, exposes the entire language semantics (or the language interpreter) that defines behavior of user programs for user inspection/modification. In this paper, we deal with the behavioral reflection in the context of a functional language Scheme. In particular, we show how to construct a reflective interpreter where user programs are interpreted by the tower of metacircular interpreters and have the ability to change any parts of the interpreters during execution. Its distinctive feature compared to the previous work is that the metalevel interpreters observed by users are written in direct style. Based on the past attempt of the present author, the current work solves the level-shifting anomaly by defunctionalizing and inspecting the top of the continuation frames. The resulting system enables us to freely go up and down the levels and access/modify the direct-style metalevel interpreter. This is in contrast to the previous system where metalevel interpreters were written in continuation-passing style (CPS) and only CPS functions could be exposed to users for modification.

Abstract:

Recent advances have enabled GPUs to be used as general-purpose parallel processors on commodity hardware for little cost. However, the ability to program these devices has not kept up with their performance. The programming model for GPUs has a number of restrictions that make it difficult to program. For example, software running on the GPU cannot perform dynamic memory allocation, requiring the programmer to pre-allocate all memory the GPU might use. To achieve good performance, GPU programmers must also be aware of how data is moved between host and GPU memory and between the different levels of the GPU memory hierarchy. We describe Firepile, a library for GPU programming in Scala. The library enables a subset of Scala to be executed on the GPU. Code trees can be created from run-time function values, which can then be analyzed and transformed to generate GPU code. A key property of this mechanism is that it is modular: unlike with other meta-programming constructs, the use of code trees need not be exposed in the library interface. Code trees are general and can be used by library writers in other application domains. Our experiments show Firepile users can achieve performance comparable to C code targeted to the GPU with shorter, simpler, and easier-tounderstand code.

Abstract:

Component based software engineering and aspect orientation are claimed to be two complementary approaches. While the former ensures the modularity and the reusability of software entities, the latter enables the modularity of crosscutting concerns that cannot be modularized as regular components. Nowadays, several approaches and frameworks are dedicated to integrate aspects into component models. However, when several aspects are woven, aspects may interact with each other which often results in undesirable behavior. The contribution of this paper is twofold. First, we show how aspectized component models can be formally modeled in UPPAAL model checker in order to detect negative interactions (a.k.a., interferences) among aspects. Second, we provide an extendible catalog of composition operators used for aspect composition. We illustrate our general approach with an airport Internet service example.

Abstract: Software product lines (SPLs) and adaptive systems aim at variability to cope with changing requirements. Variability can be described in terms of features, which are central for development and configuration of SPLs. In traditional SPLs, features are bound statically before runtime. By contrast, adaptive systems support feature binding at runtime and are sometimes called dynamic SPLs (DSPLs). DSPLs are usually built from coarse-grained components, which reduces the number of possible application scenarios. To overcome this limitation, we closely integrate static binding of traditional SPLs and runtime adaptation of DSPLs. We achieve this integration by statically generating a tailor-made DSPL from a highly customizable SPL. The generated DSPL provides only the runtime variability required by a particular application scenario and the execution environment. The DSPL supports self-configuration based on coarse-grained modules. We provide a feature-based adaptation mechanism that reduces the effort of computing an optimal configuration at runtime. In a case study, we demonstrate the practicability of our approach and show that a seamless integration of static binding and runtime adaptation reduces the complexity of the adaptation process.

We are pleased to announce that GPCE 2011 will be featuring 2 excellent tech talks.


Tech Talk 1: Pragmatics for Formal Semantics

Olivier Danvy

Abstract
This tech talk describes how to write and how to inter-derive formal semantics for sequential programming languages. The progress reported here is (1) concrete guidelines to write each formal semantics to alleviate their proof obligations, and (2) simple calculational tools to obtain a formal semantics from another.

Hands-on talk, bring your laptop!

Author bio
Olivier Danvy is interested in all aspects of programming languages, including programming. His other mother is the Université Pierre et Marie Curie (Paris VI: Ph.D. 1986) and his other mother in law is Aarhus University (DSc, 2006), where he is currently supervising his 22nd Ph.D. student



Tech Talk 2: Theorem-based Circuit Derivation in Cryptol

John Launchbury

Abstract
Even though step-by-step refinement has long been seen as desirable, it is hard to find compelling industrial applications of the technique. In theory, transforming a high-level specification into a high-performance implementation is an ideal means of producing a correct design, but in practice it is hard to make it work, and even harder to make it worthwhile. This talk describes an exception.

We introduce the domain-specific language, Cryptol, and work up to a design experience in which theorem-based refinement played a crucial role in producing an industrial quality FPGA encryptor and decryptor for AES. Quite simply, we are unlikely to have succeeded without the technique.

The Cryptol specification language was designed by Galois for the NSA as a public standard for specifying cryptographic algorithms. A Cryptol reference specification can serve as the formal documentation for a cryptographic module, eliminating the need for separate and voluminous English descriptions. Cryptol is fully executable, allowing designers to experiment with their programs incrementally as their designs evolve. Cryptol compilers can generate C, C++, and Haskell software implementations, and VHDL or Verilog HDL hardware implementations. These generators can significantly reduce overall life-cycle costs of cryptographic solutions. For example, Cryptol allows engineers and mathematicians to program cryptographic algorithms on FPGAs as if they were writing software.

The design experience we describe runs as follows: we begin with a specification for AES written in Cryptol, and over a series of five design stages we produce an industrial grade encrypt core. In each stage, we state theorems which relate the component behaviors in one stage with the corresponding behaviors in the refinement. The resulting cores, running at 350Mhz-440Mhz depending on the FPGA part, bear little relationship to the original, except that the step-by-step theorems ensured we had not gone astray.

We then repeat the pattern in generating a circuit for AES decrypt. While there are many similarities between encrypt and decrypt in AES, there are some crucial differences with regard to high performance. First concerns the generation of key material. The AES key is used as a seed for a specific pseudo-random number generator which produces key material for use in each of the AES rounds. For encrypt, the key-generator runs in sync with the action of encryption, so may be scheduled alongside it. For decrypt, they run counter to one-another, creating a major challenge to be overcome. Second, the generated key material has an additional transformation applied to it, which occurs deep in the middle of the high performing core.

Using theorems as stepping stones along the way, we redesign the key expansion algorithm so that it will run in sync with the decryption. We then trace parallel steps to the derivation of encrypt, establishing a series of commuting diagrams along the way. Whenever we confronted bugs in the development process, we produced many theorems to isolate the bugs, using theorems as a principled kind of printf. When the bugs were found and eradicated, we elided many of the temporary theorems, leaving behind those that provided important insights into the behavior of the code.

This talk is a story of the journey with demonstrations of the tool at work. Its ultimate message is to highlight the value of including a theorem facility within purely functional domain-specific languages.

Author bio
Dr. John Launchbury is Chief Scientist of Galois, Inc. John founded Galois in 1999 to address challenges in Information Assurance through the application of Functional Programming and Formal Methods. Under his leadership, formerly as CEO, the company has grown strongly, successfully winning and delivering on multiple contract awards for more than a decade. John continues to lead Galois' growing stature for its thought leadership in high assurance technology development.

Prior to founding Galois, John was a full professor in Computer Science and Engineering at the Oregon Graduate Institute School of Science and Engineering at OHSU. His instruction style earned him several awards for outstanding teaching, and he is internationally recognized for his work on the analysis and semantics of programming languages, and on the Haskell programming language in particular. John received First Class Honors in Mathematics from Oxford University in 1985. He holds a Ph.D. in Computing Science from University of Glasgow and won the British Computer Society's distinguished dissertation prize. In 2010, John was inducted as a Fellow of the Association for Computing Machinery (ACM)

Abstract:

Embedded, textual DSLs are often provided as an API wrapped around object-oriented application frameworks to ease framework integration. While literature presents claims that DSL-based application development is beneficial, empirical evidence for this is rare. We present the results of an experiment comparing the complexity of three different object-oriented framework APIs and an embedded, textual DSL. For this comparative experiment, we implemented the same, non-trivial application scenario using these four different APIs. Then, we performed an Object-Points (OP) analysis, yielding indicators for the API complexity specific to each API variant. The main observation for our experiment is that the embedded, textual DSL incurs the smallest API complexity. Although the results are exploratory, as well as limited to the given application scenario and a single embedded DSL, our findings can direct future empirical work. The experiment design is applicable for similar API design evaluations.

Abstract:

The validation and verification of reliable systems is a difficult and complex task, mainly for two reasons: First, it is difficult to precisely state which formal properties a system needs to fulfil to be of high quality. Second, it is complex to automatically verify such properties, due to the size of the analysis state space which grows exponentially with the number of components. We tackle these problems by a tool-supported method which embeds application functionality in building blocks that use UML activities to describe their internal behaviour. To describe their externally visible behaviour, we use a combination of complementary interface contracts, so-called ESMs and EESMs. In this paper, we present an extension of the interface contracts, External Reliability Contracts (ERCs), that capture failure behaviour. This separation of different behavioural aspects in separate descriptions facilitates a two-step analysis, in which the first step is completely automated and the second step is facilitated by an automatic translation of the models to the input syntax of the model checker TLC. Further, the cascade of contracts is used to separate the work of domain and reliability experts. The concepts are proposed with the background of a real industry case, and we demonstrate how the use of interface contracts leads to significantly smaller state spaces in the analysis.

Project Fortress: A Growable Language for Scientists and Engineers

Sukyoung Ryu

Abstract
We can think of a programming language as a vocabulary of words and a set of rules that define how to combine words into meaningful constructs. Creating a vocabulary and a set of rules that allow programmers to express their ideas clearly and concisely is one of the main goals of language design. However, it is difficult to anticipate the vocabulary and the set of rules that are suitable for solving various problems. It often depends on domain-specific applications, new hardware platforms, and any unexpected feature requests. Therefore, a language should grow over time to accommodate the changing needs of its users.

Fortress is a new programming language designed for growth by community instead of a single core team. It provides mathematical syntax to enable scientists and engineers to write programs in a notation they are accustomed to. It also provides built-in support for parallel programming. Moreover, its macro system allows for the language growth by extending the syntax and semantics of Fortress.

In designing Fortress, we have adopted the following design strategy: “Whenever possible, implement a proposed language feature in a library rather than building it into the compiler.” For this approach to work, library writers must have substantial flexibility and control over both syntax and semantics. By designing the language for growth, we are designing it for community participation and development. Hence, we have made Project Fortress open source, and are collaborating on its development with many groups and individuals all over the world.

Please come take it for a spin, or pitch in and help us grow!

Author biography
Sukyoung Ryu is an Assistant Professor at the Computer Science Department of KAIST (Korea Advanced Institute of Science and Technology). Before joining KAIST in December 2009, she worked as a Member of Technical Staff in Sun Microsystems Laboratories, where she worked on formally designing and developing the Fortress programming language. Before that, she was a Research Associate in Computer Science at Harvard, where she worked on the Debugging Everywhere project. She received her Ph.D. (2001), M.S. (1996), and B.S. (1995), in Computer Science from KAIST. Her most recent research focuses on developing language features that are both useful in practice and proven to be sound. She led the effort to construct the core calculi of the Fortress language, to improve the Fortress prose specification, and to build a full-fledged parser for Fortress that runs entirely on the JVM.

(Mega)modeling Software Language Artifacts

Jean-Marie Favre, Dragan Gašević, Ralf Lämmel

Description
Modern software is typically made of heterogeneous sets of software artifacts including for instance databases, programs, transformations, grammars, models and metamodels, compilers, interpreters, formats, ontologies, frameworks, APIs, schemas, configuration files, makefiles, etc. In practice particular languages, tools, implementations, and standards are used such as SQL DDL, Saxon, XLST, Java, Hibernate, XSD, OWL, DOM, Antlr, UML, XMI, Ecore, Awk, and so on. In the absence of a conceptual framework it is difficult to understand the relationships between these software artifacts, if any. The goal of this tutorial is to provide such a framework, showing that the similarity and relationships between techniques can be modeled at a high level of abstraction, and even more importantly that recurring patterns occur in such models. Some of these patterns, for instance those involving “bridges” between technologies, would be really difficult to grasp without a proper conceptualization. As a result software engineers and researchers usually find it hard to understand the intricacies of technologies that are out of their area of expertise and it is more than likely that they do not realize the analogies that exist between heterogeneous technologies. This tutorial aims to unveil these recurring patterns and to show participants coming from different horizons how to model the technologies they design or work with in an uniform way and how to situate them into the overall software language landscape.

In the first part of the tutorial, the notions of software languages and technical spaces are briefly presented with a special emphasis on their unifying character. Then fundamental relations such RepresentationOf and ElementOf are introduced forming the basis of a (mega)modeling framework. Recurrent patterns based on these relations are then presented, allowing to describe for instance the “conformance” relation between let’s say a program and a grammar, an xml file and an xsd schema, or an uml model and its metamodel, etc. More complex patterns such as bridges between technologies (e.g. XML <==> Relational, OO <==> XML, etc.) are defined following the same approach. Though this notion of bridges seems easy to grasp informally at the first sight, it often leads to a rather large and complex set of technologies that are hard to understand and compare without an appropriate framework.

In the second part of the tutorial, the use of (mega)modeling framework is illustrated through its application in three different technical spaces: Grammarware, Modelware and Ontologyware. Concrete examples of various degree of complexity are provided in each case, with again an emphasis on similarities between technical spaces. The hope of this approach is that it should be possible for someone with some knowledge in technical spaces (let’s say grammarware) to improve significantly his or her comprehension about another space (let’s say ontologyware), and this by virtue of analogy. It is our believe that the (mega)modeling approach, by raising the level of abstraction and focusing on essential software language concepts, enables both to better understand complex structures involving many heterogeneous software artifacts, but also to better apprehend new technologies coming from other spaces.

Author bios
Jean-Marie Favre is a software anthropologist and a software language archeologist. He is principal scientist at One Tree Technologies. He has published numerous papers and coedited a book (in French) Beyond MDA: Model Driven Engineering. He has given tutorials and keynotes in more than dozen of international events and summer schools and has organized various national and international events. His research interests include software language engineering, software linguistics, software evolution and reverse engineering, model driven engineering and research 2.0.

Dragan Gašević is a Canada Research Chair in Semantic Technologies and an Associate Professor in the School of Computing and Information Systems at Athabasca University. His research interests include semantic technologies, software language engineering, technology-enhanced learning, and service- oriented architectures. He has (co-)authored numerous research papers and is a led author of the book "Model Driven Engineering and Ontology Development." He has given tutorials at many well-known conferences such as WWW, ISWC, and CAiSE.

Ralf Lämmel is Professor of Computer Science at University of Koblenz-Landau. In his career, he also served at Microsoft Corp., Free University of Amsterdam, Dutch Center for Mathematics and Computer Science (CWI), and University of Rostock. Ralf Lämmel is generally interested in the combination of software engineering and programming languages. Together with the other tutorial speakers and further researchers, he is one of the founding fathers of the SLE conference. He is one of the founding fathers of the summer school series GTTSE--Generative and Transformational Techniques on Software Engineering.

Embedded Domain-specific Language Implementation using Dependent Types

Edwin Brady
Abstract
Domain-specific languages (DSLs) are programming languages designed for solving problems in a particular domain. By providing suitable abstractions, they allow experts to focus on solving high-level problems without being concerned with low-level programming details. Embedded domain-specific languages (EDSLs) are an emerging implementation technique, in which features of a host language, for example parsing or code generation, are exploited by the DSL implementation. In this way, EDSLs can be implemented much more rapidly than their standalone equivalents and can take advantage of compiler optimisations and other implementation effort in the host.

Dependent types allow types to be predicated on values. Using dependent types, a programmer can ascribe a precise type to a program, for example that concatenating lists of length n and m yields a list of length n + m, or that sorting a list of length n yields a list of length n which is a permutation of its input satisfying a given ordering. In this way, types can be viewed as a form of specification, verified by the type checker.

Using a dependently typed language as the host for an EDSL brings additional benefits. Not only can we reuse the host language’s parser and code generator, we can exploit its type system to express properties of the EDSL and guarantee their correctness. In this tutorial I will introduce I DRIS, a dependently typed functional programming language. I will give practical examples of dependently type programs, culminating in the construction of an EDSL for network protocol implementation.

Author biography
Edwin Brady is a SICSA Advanced Research Fellow in Computer Science at the University of St Andrews, where he has worked since receiving his PhD from the University of Durham in 2005. His research interests include functional programming with dependent types, type theory, program generation and programming language design and implementation. His previous work has included compilation and optimisation techniques for dependently typed functional programming languages. This has important applications in the verification of safety-critical systems; he has also been closely involved with the Hume project (http://www.hume-lang.org/), applying dependent type systems to the correct implementation of safety-critical embedded systems with limited memory. He is the main developer of I DRIS (http://www.idris-lang.org/), a functional language with dependent types intended for systems programming, and contributes to the development of Epigram (http://www.e-pig.org/). His recent work has focused on the practical applications of dependently typed programming, using I DRIS to implement domain-specific languages for verified network protocols, data formats, and resource aware systems in general.

Agile and Efficient Domain-Specific Languages using Multi-stage Programming in Java Mint

Mathias Ricken, Edwin Westbrook
Abstract
Domain-specific languages (DSLs) are a powerful productivity tool because they allow domain experts, who are not necessarily programming experts, to quickly develop programs. DSL implementations have unique constraints for programming languages because they must be efficient, in order to ensure high productivity, but they must also be agile, in order to meet the rapidly changing demands of their domains. In this tutorial we show how multi-stage programming (MSP) can be used to build staged interpreters, which combine the agility of interpreters with the efficiency of compilers. The tutorial is conducted in Java Mint, an multi-stage Java based on recent work incorporating MSP into imperative object-oriented languages. In the first half of the tutorial, we introduce MSP by demonstrating how to write a staged interpreter for a number of basic language constructs, such as recursive functions, conditionals, and let expressions. In the second half, we extend our staged interpreter to take advantage of several well-known compiler optimizations, including type inference, constant folding, and static parallel loop scheduling. We highlight the opportunities afforded by using MSP with object-oriented design to quickly create efficient DSL implementations.

Author bios
Mathias Ricken is a doctoral candidate in the Programming Languages Team at Rice University and one of the principal developers of the DrJava integrated development environment. His research interests include concurrent programming, extending the Java language, and computer science education. He is the developer of the Concutest concurrent unit testing framework and has created various experimental extensions of Java to address, for instance, programming with meta-data. Currently, Mathias is contributing to Java Mint, a multi-stage extension of Java that allows safe and expressive statically typed program generation and specialization in an imperative language setting.

Edwin Westbrook is a post-doctoral researcher at Rice University. His primary interests are in developing techniques for implementing and verifying properties of domain-specific languages (DSLs). He has worked on a number of projects in this area, including: Cinic, a type theory for building machine-checked proofs of properties of DSLs using a new approach to higher-order abstract syntax; Java Mint, a multi-stage version of Java used for efficient implementations of DSLs; and Acumen, a DSL for designing cyber-physical systems.

Ontologies and Software Language Engineering

Dragan Gašević, Fernando Silva Parreiras, Tobias Walter
Abstract
Trying to advance the current practices for sharing data, resources and knowledge on the Web, the research community has been researching challenges around the idea of the Semantic Web. The central component of the Semantic Web are ontologies, commonly defined as formal and explicit definitions of shared domain conceptualizations. To have an interoperable and standardized set of technologies, the Semantic Web research offered a stack of standards and tools including automated reasoners and ontology languages, i.e., languages to describe formally a domain of discourse. This stack of standards and tools is popularly called semantic technologies. Among ontology languages, the Web Ontology Language (OWL) [4] is the most prominent.

Mainly, due to the similarities in the design of OWL and object-oriented languages, the research community started exploring a potential synergy. Indeed, OWL provides important features complementary to UML class-based modeling and OCL that improve software languages: it allows different ways of describing classes; it handles these descriptions as first-class entities; it provides additional constructs like transitive closure for properties; and it enables dynamic classification of objects based upon class descriptions.

The most notable work has been done on integrating ontologies and model-driven engineering, especially, for the tasks related to model-driven language engineering. As the OWL language is based on description logic, standard ontology reasoners can be used for various types of processing of software languages such as consistency checking, constraint validation, and query processing and with applications in different software engineering areas such as component-based software development, software product lines, or requirements engineering. For example, the knowledge encoded in OWL evolves independently of the execution logic, i.e., developers maintain class descriptions in the ontology and not in the software. Moreover, developers may use class descriptions to semantically query the domain. Semantic query plays an important role where shared terminologies, interoperability and consistency detection are required.

Striving to introduce the basics and potentials for ontologies for software language engineering, this tutorial aims to:

  1. define ontologies and the OWL language;
  2. describe basics of description logics-based reasoning designed for ontology languages;
  3. describe the current efforts on relations between the OWL language and languages such as UML, MOF and OCL; and
  4. illustrate applications of ontology-enhanced software
languages for software design patterns, software product lines, domain-specific languages, and software language refinement.

After the tutorial, participants will be able (1) to understand the concepts of ontologies, OWL language and its formal reasoning potentials; (2) to realize the valued added by ontology-enabled software languages and (3) to identify potential applications for semantic technologies in software development and different software language engineering approaches other than those based on model-driven engineering principles.

References
[1] Gaševic, Dragan, Djuric, Dragan, Devedžic, Vladan. Model Driven Engineering and Ontology Development. Springer, Berlin, 2. edition, 2009.

[2] F. Silva Parreiras and S. Staab. Using Ontologies with UML Class-based Modeling: The TwoUse Approach. Data Knowl. Eng. in press.

[3] F. Silva Parreiras, S. Staab, and A. Winter. Improving design patterns by description logics: A use case with abstract factory and strategy. In Modellierung 2008, volume P-127 of LNI, pages 89–104. GI, 2008.

[4] W3C OWL Working Group. OWL 2 Web Ontology Language Document Overview. W3C Working Draft 27 March 2009. Available at http://www.w3.org/TR/2009/WD-owl2-overview-20090327//.

[5] T. Walter, F. Silva Parreiras, and S. Staab. OntoDSL: An Ontology-Based Framework for Domain-Specific Languages. In Model Driven Engineering Languages and Systems, 12th International Conference, MODELS 2009, volume 5795, pages 408–422. Springer, 2009.

Author bios
Fernando Silva Parreiras, pursues his PhD since the beginning of 2006 under the supervision of Prof. Steffen Staab. He is the leader of the Special Interest Group Software Web at the Web Science and Technology Institute (WeST) at the University of Koblenz-Landau, Germany. He has been investigating the integration of model-driven engineering and Ontology in the scope of the EU project MOST. His related publications include papers in Modellierung’2008, ER’2008, ICSC’2009, MoDELS’2009 and ECMFA 2010. He has served as program committee member of conferences like SLE and and workshops like ONTOSE and SWESE and as organizer of the TWOMDE workshop.

Dragan Gašević is a Canada Research Chair in Semantic Technologies and an Associate Professor in the School of Computing and Information Systems at Athabasca University. He is also an Adjunct Professor in the School of Interactive Arts and Technology at Simon Fraser University and an associated research member of the GOOD OLD AI Research Network at the University of Belgrade. He is a recipient of Alberta Ingenuity’s 2008 New Faculty Award. His research interests include semantic technologies, software language engineering, technology-enhanced learning, and service-oriented architectures. He has (co-)authored more than 200 research papers and delivered more than 10 tutorials at major conferences such as WWW, MODELS, CAiSE, and ISWC. He has been serving on editorial boards of three international journals and has edited special issues in journals such as IET Software and IEEE TSE. He has been the organizer, chair, and member of program committees of many international conferences.

Tobias Walter is PhD. student at the University of Koblenz-Landau under the supervision of Prof. Dr. Jürgen Ebert and Prof. Dr. Steffen Staab. Currently he is member of the Institute for Software Technology and the Institute for Web Science and Technology. Here, his research focuses on the combination of domain-specific modeling languages and different ontology technologies. Further he is interested in the design and use of new software modelling languages and its implementation in tools. From 2008 he is contributing to the MOST project where he is investigating the conceptual integration of Model-Driven Architecture (MDA) and Ontologies. His related publications include papers at MoDELS’2009, ECMFA’2010, WC-DSL’2009, ICSC’2009 and different workshops.

Language Definition and Extension with MPS

Markus Völter
Abstract
Language definition and extension is a hot topic. Using modular languages, where a program can use concepts from different language modules as needed, promises significantly increased language usability as well as an integration between general purpose (programming) and domain-specific (modeling) concepts and tools.

JetBrains MPS is an open source language workbench that uses projectional editing as opposed to parsing techniques. In MPS, languages are defined via structure, projection rules, transformation rules and type systems.

In this tutorial I will provide a brief overview about how MPS works and what you can do with it. I will show how to build an external DSL, how to integrate the external DSL with Java, and how to extend an existing programming language with a new statement. To round it off, I will demo a non-trivial set of languages for embedded software development. 90% of the tutorial will be live demos.

Note that even if you don't plan to work with MPS specifically, this tutorial will provide a good overview of projectional editing.

Author biography
Markus Völter works as an independent researcher, consultant and coach for itemis AG in Stuttgart, Germany. His focus is on software architecture, model-driven software development and domain specific languages as well as on product line engineering. Markus also regularly writes (articles, patterns, books) and speaks (trainings, conferences) on those subjects. Contact him via voelter@acm@org or www.voelter.de.
GPCE 2011 poster
Poster (46 x 61 cm or 18 x 24 inches)
for display.
GPCE 2011 flyer
Flyer (22 x 28 cm or 8.5 x 11 inches)
for hand out.
Conference Program 05 Nov 2011 - 01:44 Peter Kim
Matthias Felleisen Invited Talk 02 Nov 2011 - 18:35 Peter Kim
Gary Shubert Invited Talk 02 Nov 2011 - 18:32 Peter Kim
Conference Header 22 Oct 2011 - 02:34 Peter Kim
Tech Talks 19 Oct 2011 - 07:18 Peter Kim
Conference Organization 15 Oct 2011 - 20:44 Peter Kim
Reflectionin Direct Style 02 Oct 2011 - 02:00 Peter Kim
Towards Automatic Generationof Formal Specif... 02 Oct 2011 - 01:52 Peter Kim
Lessis More Unparsercompleteness 02 Oct 2011 - 01:39 Peter Kim
Helping Programmers Help Users 02 Oct 2011 - 01:37 Peter Kim
Growinga Language Environmentwith Editor Lib... 02 Oct 2011 - 01:35 Peter Kim
The Effectsof Programming Interface Design 02 Oct 2011 - 01:19 Peter Kim
Declaratively Defining Domain Specific Langu... 02 Oct 2011 - 01:08 Peter Kim
Monitoring Aspectsforthe Customizationof Au... 02 Oct 2011 - 01:01 Peter Kim
Runtime Compilationfor GPUsin Scala 02 Oct 2011 - 00:52 Peter Kim
Infrastructurefor Component Based DDSApplic... 02 Oct 2011 - 00:51 Peter Kim
Static Analysisof Aspect Interactionand Comp... 02 Oct 2011 - 00:50 Peter Kim
Generating Database Migrations For Evolving W... 02 Oct 2011 - 00:48 Peter Kim
Model Driven Engineering And Run Time Model Usa... 02 Oct 2011 - 00:46 Peter Kim
Generationof Geometric Programs Specifiedby... 02 Oct 2011 - 00:41 Peter Kim
On The Impact Of Feature Dependencies 02 Oct 2011 - 00:40 Peter Kim
Investigating The Safe Evolution Of SPLs 02 Oct 2011 - 00:39 Peter Kim
Feature Interactions Products Composition 02 Oct 2011 - 00:11 Peter Kim
Tailoring Dynamic Software Product Lines 02 Oct 2011 - 00:09 Peter Kim
Conference Registration 16 Sep 2011 - 07:37 Peter Kim
Keynote Speakers 19 Aug 2011 - 19:57 Peter Kim
Call For Tech Talks 04 Aug 2011 - 19:12 Peter Kim
Accepted Papers 08 Jul 2011 - 22:18 Peter Kim
Call For Papers 24 May 2011 - 21:59 Peter Kim
Banner 06 May 2011 - 02:35 Peter Kim
Poster 12 Mar 2011 - 06:14 Peter Kim
Important Dates 01 Mar 2011 - 07:36 Peter Kim
Conference Venue 09 Feb 2011 - 08:57 Peter Kim
JEquality Gen Generating Equality And Hashing... 31 Aug 2010 - 09:41 Rob Economopoulos
Incremental Type-CheckingForType-Reflecti... 31 Aug 2010 - 09:39 Rob Economopoulos
Model Based Kinematics Generation For Modular... 31 Aug 2010 - 09:37 Rob Economopoulos
ABICompatibility Through ACustomizable Lang... 31 Aug 2010 - 09:35 Rob Economopoulos
Domain Specific Language Integration With Com... 31 Aug 2010 - 09:34 Rob Economopoulos
Lightweight Modular Staging APragmatic Appro... 31 Aug 2010 - 09:32 Rob Economopoulos
Applications Of Dynamic Code Evolution For Jav... 31 Aug 2010 - 09:32 Rob Economopoulos
Composition Of Dynamic Analysis Aspects 31 Aug 2010 - 09:26 Rob Economopoulos
Code Clones In Feature Oriented Software Produ... 31 Aug 2010 - 09:24 Rob Economopoulos
Iterative Type Inference With Attribute Gramm... 27 Aug 2010 - 10:13 Rob Economopoulos
Adding Genericity To APlugin Framework 27 Aug 2010 - 10:11 Rob Economopoulos
Modular Domain Specific Language Components I... 27 Aug 2010 - 10:10 Rob Economopoulos
AComponentbased Runtime Evolution Infrastru... 27 Aug 2010 - 10:09 Rob Economopoulos
Implicit Invocation Meets Safe Implicit Concu... 27 Aug 2010 - 10:08 Rob Economopoulos
Automatic And Efficient Simulation Of Operati... 27 Aug 2010 - 10:07 Rob Economopoulos
Efficient Extraction And Analysis Of Preproce... 27 Aug 2010 - 10:06 Rob Economopoulos
Automatic Variation Point Identification In F... 27 Aug 2010 - 10:05 Rob Economopoulos
Number of topics: 50

Generative Programming and Component Engineering (GPCE'11)

ACM logo ACM logo

Tenth International Conference
October 22-23, 2011
Portland, Oregon, USA
(collocated with SPLASH 2011)

Sponsored by ACM and SGT



Wikimedia Portland image

Image used under GNU FDL.



News
2011-10-21 See schedule for where registration and presentations are located. Breakfast will be served both days at 8:00 a.m. outside the presentation location.

2011-09-12 Tech talks will be given by Olivier Danvy and John Launchbury. Also, registration is now open.

2011-08-11 Take a sneak preview of keynotes by Matthias Felleisen and Gary Shubert.

2011-08-04 Tech talk proposals are due on August 7, 2011.

Registration is at Salon Foyer (Hilton Executive Tower, downstairs)

Presentations are in Salon Ballroom I and II (Hilton Executive Tower, downstairs)

Breakfast will be served both days at 8:00 a.m. outside of these rooms.

It's your last chance to register for GPCE 2011. The program features keynotes by Matthias Felleisen (Northeastern University) and Gary Shubert (Lockheed Martin Space Systems Company), 18 technical talks covering theoretical and practical aspects of generative and component based programming, and two tech talks by Olivier Danvy (University of Aarhus) and John Launchbury (Galois, Inc.).

Generative and component approaches are revolutionizing software development just as automation and componentization revolutionized manufacturing. Key technologies for automating program development are Generative Programming for program synthesis, Component Engineering for modularity, and Domain-Specific Languages (DSLs) for compact problem-oriented programming notations.

The International Conference on Generative Programming and Component Engineering is a venue for researchers and practitioners interested in techniques that use program generation and component deployment to increase programmer productivity, improve software quality, and shorten the time-to-market of software products. In addition to exploring cutting-edge techniques of generative and component-based software, our goal is to foster further cross-fertilization between the software engineering and the programming languages research communities.

This year, the conference will be held in beautiful Portland. We invite you to join us.

GPCE variables:

  • Set URLGPCE11 = http://gpce11.gpce.org
  • Set GPCEDAYS = October 22-23, 2011
  • Set GPCEDETAILDAYS = *Main Conference: Oct. 22-23, workshops and tutorials: *

  • Set URLFLYER =
  • Set URLFLYERALT = ?
  • Set URLOOPSLA06 = ?
  • Set URLLOCAL = ?
  • Set URLPORTLAND = ?
  • Set VENUE = ?
  • Set VENUECITY = Portland, Oregon, USA

  • Set PROPOSALSUBMISSION = ?
  • Set PROPOSALNOTIFICATION = ?

  • Set TECHTALKSSUBMISSION = August 7, 2011
  • Set TECHTALKSNOTIFICATION = August 26, 2011
  • Set OLDPAPERPRESUBMISSION = Monday, May 16, 2011
  • Set OLDPAPERSUBMISSION = Sunday, May 22, 2011
  • Set PAPERPRESUBMISSION = Saturday, May 21, 2011
  • Set PAPERSUBMISSION = Saturday, May 28, 2011
  • Set PAPERSUBMISSIONPOSTPONED = ?
  • Set PAPERNOTIFICATION = Wednesday, July 6, 2011
  • Set PAPERCAMERAREADY = August 17, 2011

  • Set WORKSHOPSUBMISSION = *??, * (suggested)
  • Set WORKSHOPNOTIFICATION = *??, * (suggested)
  • Set WORKSHOPCAMERAREADY = *??, *
  • Set TUTORIALCAMERAREADY = *??, *

  • Set EARLYREGISTRATION = *??, *
  • Set LATEREGISTRATION = *??, *

  • Set WORKSHOPDAYS = ?

  • Set GPCEVENUE = Gpce Venue

Preferences:

  • Set WEBTITLE = Generative Programming and Component Engineering
  • Set SHORTWEBTITLE = GPCE 2011

  • Web specific background color: (Pick a lighter one of the StandardColors)
    • Set WEBBGCOLOR = #D0D0D0

  • Exclude web from a web="all" search: (Set to on for hidden webs)
    • Set NOSEARCHALL =

  • Default template for new topics and form(s) for this web:
    • WebTopicEditTemplate?: Default template for new topics in this web. (Site-level is used if topic does not exist)
    • TWiki.WebTopicEditTemplate: Site-level default template
    • TWikiForms: How to enable form(s)
    • Set WEBFORMS =

  • Users or groups who are not / are allowed to view / change / rename topics in the GPCE11 web: (See TWikiAccessControl)
    • Set DENYWEBVIEW =
    • Set ALLOWWEBVIEW =
    • Set DENYWEBCHANGE =
    • Set ALLOWWEBCHANGE = GpceorgGroup
    • Set DENYWEBRENAME =
    • Set ALLOWWEBRENAME = GpceorgGroup

  • Web preferences that are not allowed to be overridden by user preferences:
    • Set FINALPREFERENCES = WEBTOPICLIST, DENYWEBVIEW, ALLOWWEBVIEW, DENYWEBCHANGE, ALLOWWEBCHANGE, DENYWEBRENAME, ALLOWWEBRENAME

Notes:

  • A preference is defined as:
    6 spaces * Set NAME = value
    Example:
    • Set WEBBGCOLOR = #FFFFC0
  • Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
    • When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0 .
  • The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
  • You can introduce new preferences variables and use them in your topics and templates. There is no need to change the TWiki engine (Perl scripts).

Related Topics:


Number of topics: 0

  • Jump to topic: If you already know the name of the topic, enter the name of the topic into the GoBox at the top

  • WebChanges: Find out what topics in GPCE11 have changed recently

HistoricalStatistics? for TWiki.GPCE11 Web

Month: Topic
views:
Topic
saves:
File
uploads:
Most popular
topic views:
Top contributors for
topic save and uploads:
Feb 2008 2643 0 0 512 WebStatistics
302 WebHome
103 WebPreferences
102 WebNews
102 PEPMPublicity?
102 PEPMProgram?
 75 ProgramCommittee?
 70 CallForPapers
 63 PaperSubmission?
 63 ImportantDates
 63 PreviousMeetings?
 
Jan 2008 9554 0 0 1433 WebHome
786 WebStatistics
660 PEPMProgram?
433 ProgramCommittee?
361 PEPMPublicity?
291 WebNews
283 PreviousMeetings?
283 RegistrationAndAccomodation?
265 PaperSubmission?
265 ImportantDates
260 InvitedTalks?
 
Dec 2007 7197 33 0 1314 WebHome
573 PEPMProgram?
329 WebStatistics
304 ProgramCommittee?
267 WebNews
254 PEPMPublicity?
233 AcceptedPapers
213 PaperSubmission?
204 InvitedTalks?
201 RegistrationAndAccomodation?
195 PreviousMeetings?
 32 RobertGlueck
  1 OegeDeMoor
Nov 2007 8164 17 0 1673 WebHome
430 WebStatistics
374 AcceptedPapers
344 ImportantDates
335 ProgramCommittee?
300 WebNews
275 PEPMProgram?
267 RegistrationAndAccomodation?
266 PaperSubmission?
255 InvitedTalks?
247 PEPMPublicity?
 17 RobertGlueck
Oct 2007 8900 21 1 2412 WebHome
822 PaperSubmission?
709 ImportantDates
565 CallForPapers
440 ProgramCommittee?
369 ResearchPaperAdvice?
232 ToolPaperAdvice?
217 PEPMPublicity?
197 InvitedTalks?
196 WebNews
196 PreviousMeetings?
 22 RobertGlueck
Sep 2007 7368 3 0 1582 WebHome
443 CallForPapers
404 ImportantDates
375 PaperSubmission?
358 ProgramCommittee?
332 WebStatistics
254 PEPMPublicity?
236 PreviousMeetings?
228 ResearchPaperAdvice?
200 InvitedTalks?
198 RegistrationAndAccomodation?
  3 RobertGlueck
Aug 2007 12282 74 10 2082 WebHome
833 ProgramCommittee?
744 WebStatistics
741 CallForPapers
573 ImportantDates
513 PEPMPublicity?
433 PaperSubmission?
416 PEPMProgram?
409 PreviousMeetings?
383 ResearchPaperAdvice?
341 ConferenceOrganization
 81 RobertGlueck
  3 OegeDeMoor
Jul 2007 3115 144 0 405 WebHome
216 ProgramCommittee?
159 PreviousMeetings?
154 CallForPapers
150 WebStatistics
132 ImportantDates
117 PEPMNews?
112 WebIndex
 99 PEPMPublicity?
 96 ConferenceOrganization
 80 ResearchPaperAdvice?
144 RobertGlueck
Jun 2007 5518 0 0 673 WebHome
316 WebStatistics
235 PEPMProgram?
172 PreviousMeetings?
154 WebNews
153 WorkshopVenue?
146 ProgramCommittee?
142 PaperSubmission?
134 PEPMPublicity?
131 AffiliatedMeetings?
130 AcceptedPapers
 
May 2007 4489 0 0 530 WebHome
524 WebStatistics
202 PEPMProgram?
126 PEPMPublicity?
116 WebNews
115 PreviousMeetings?
113 ProgramCommittee?
110 PaperSubmission?
107 RegistrationAndAccomodation?
 98 AffiliatedMeetings?
 98 WorkshopVenue?
 
Apr 2007 4460 0 0 606 WebHome
358 WebStatistics
172 PEPMProgram?
135 ProgramCommittee?
121 WebNews
121 PEPMPublicity?
121 ToolPaperAdvice?
119 PreviousMeetings?
115 CallForPapers
109 PaperSubmission?
105 WebChanges
 
Mar 2007 4825 0 0 593 WebHome
454 WebStatistics
202 PEPMProgram?
152 ProgramCommittee?
128 WebNews
118 PublicityList06?
116 PaperSubmission?
110 AffiliatedMeetings?
109 ResearchPaperAdvice?
108 WebChanges
103 PreviousMeetings?
 
Feb 2007 4464 0 0 661 WebHome
344 WebStatistics
261 PEPMProgram?
158 WebNews
158 ProgramCommittee?
128 PaperSubmission?
123 AffiliatedMeetings?
119 ResearchPaperAdvice?
118 CallForPapers
116 PEPMPublicity?
108 ToolPaperAdvice?
 
Jan 2007 5169 7 0 1040 WebHome
612 WebStatistics
462 PEPMProgram?
188 ProgramCommittee?
148 WebNews
133 PEPMPublicity?
123 AffiliatedMeetings?
114 CallForPapers
113 AcceptedPapers
112 PaperSubmission?
111 ResearchPaperAdvice?
  7 EelcoVisser
Dec 2006 4452 17 0 1122 WebHome
398 PEPMProgram?
164 ProgramCommittee?
140 AcceptedPapers
134 RegistrationAndAccomodation?
126 ResearchPaperAdvice?
118 WebStatistics
115 ImportantDates
114 CallForPapers
101 WebNews
 98 ToolPaperAdvice?
 17 EelcoVisser
Nov 2006 3436 5 0 782 WebHome
223 WebStatistics
154 ProgramCommittee?
141 ImportantDates
136 ResearchPaperAdvice?
125 CallForPapers
106 ToolPaperAdvice?
 97 PEPMProgram?
 88 AffiliatedMeetings?
 88 InvitedTalks?
 83 PEPMPublicity?
  5 EelcoVisser
Oct 2006 3880 8 0 1065 WebHome
262 ImportantDates
252 CallForPapers
201 PaperSubmission?
162 ProgramCommittee?
134 ResearchPaperAdvice?
121 WebStatistics
111 PEPMPublicity?
101 PreviousMeetings?
 91 ToolPaperAdvice?
 91 AffiliatedMeetings?
  8 EelcoVisser
Sep 2006 2926 5 0 650 WebHome
176 CallForPapers
146 ImportantDates
136 WebStatistics
116 ProgramCommittee?
 95 ResearchPaperAdvice?
 82 PEPMPublicity?
 76 InvitedTalks?
 72 PaperSubmission?
 69 PreviousMeetings?
 67 ToolPaperAdvice?
  5 EelcoVisser
Aug 2006 4938 0 0 786 WebHome
268 CallForPapers
213 WebStatistics
195 ProgramCommittee?
176 PaperSubmission?
171 WebChanges
155 ImportantDates
151 PEPMPublicity?
148 PreviousMeetings?
131 WebNotify
124 PEPMProgram?
 
Jul 2006 7014 0 0 868 WebHome
350 ProgramCommittee?
337 WebStatistics
334 CallForPapers
235 PaperSubmission?
213 PreviousMeetings?
206 PEPMPublicity?
194 ImportantDates
189 WebChanges
180 WebNotify
175 RegistrationAndAccomodation?
 
Jun 2006 4150 29 2 827 WebHome
261 CallForPapers
233 ProgramCommittee?
164 WebStatistics
159 ImportantDates
136 PreviousMeetings?
125 ResearchPaperAdvice?
119 PaperSubmission?
116 WebChanges
114 PEPMPublicity?
104 RegistrationAndAccomodation?
 31 EelcoVisser
May 2006 2620 80 0 427 WebHome
138 ProgramCommittee?
138 CallForPapers
103 PreviousMeetings?
103 ImportantDates
 78 WorkshopVenue?
 77 ResearchPaperAdvice?
 74 WebChanges
 72 WebLeftBar
 69 WebNotify
 69 AffiliatedMeetings?
 80 EelcoVisser
Apr 2006 15023 8 0 3330 WebHome
1250 CallForPapers
781 WebStatistics
571 ImportantDates
504 ConferenceOrganization
486 CallForTechTalks
468 CallForDemonstrations?
443 CallForWorkshops?
414 WebNews
397 ElectronicSubmission?
393 WebChanges
  8 ToddVeldhuizen
Mar 2006 10528 1 0 2345 WebHome
871 CallForPapers
667 WebStatistics
376 ImportantDates
343 CallForTechTalks
325 CallForWorkshops?
325 ConferenceOrganization
310 WebNews
263 CallForDemonstrations?
255 WebChanges
244 WebPreferences
  1 EelcoVisser
Feb 2006 6534 0 0 1541 WebHome
550 CallForPapers
397 WebStatistics
258 ImportantDates
235 CallForTechTalks
226 ConferenceOrganization
215 CallForDemonstrations?
212 CallForWorkshops?
200 WebNews
139 WebLeftBar
129 WebPreferences
 
Jan 2006 6593 129 5 1553 WebHome
494 CallForPapers
422 WebStatistics
315 ImportantDates
240 WebNews
223 ConferenceOrganization
219 CallForTechTalks
197 WebPreferences
191 CallForWorkshops?
187 WebLeftBar
152 WebChanges
116 EmirPasalic
 17 ToddVeldhuizen
  1 ChristaSchwanninger
Dec 2005 5873 38 0 1603 WebHome
535 WebStatistics
292 WebNews
246 CallForPapers
230 WebLeftBar
204 WebPreferences
194 ImportantDates
179 ConferenceHeader
166 WebIndex
160 CallForTechTalks
156 PEPMNews?
 37 EmirPasalic
  1 ChristaSchwanninger
Nov 2005 3943 0 0 868 WebStatistics
849 WebHome
147 WebLeftBar
144 WebNews
127 ImportantDates
126 WebPreferences
116 WebChanges
114 CallForPapers
109 ConferenceOrganization
105 WebNotify
 92 PEPMNews?
 
Oct 2005 3209 33 0 932 WebHome
175 WebNews
127 WebChanges
126 WebPreferences
118 PEPMNews?
115 WebLeftBar
111 ImportantDates
110 WebNotify
105 WebStatistics
101 ConferenceHeader
 99 WebIndex
 31 ChristaSchwanninger
  2 EugenioMoggi
Sep 2005 1290 18 2 361 WebHome
 73 WebNews
 55 WebIndex
 46 WebNotify
 46 WebChanges
 41 PEPMNews?
 39 WebChanges500?
 38 WebSearch
 38 CallForPapers
 37 WebPreferences
 36 WebChanges100?
 17 EelcoVisser
  3 PradeepikaIrangani
Aug 2005 1526 32 1 481 WebHome
147 WebStatistics
 94 ConferenceHeader
 86 WebIndex
 84 WebNews
 75 WebPreferences
 69 WebChanges
 59 PEPMNews?
 51 WebNotify
 49 WebLeftBar
 43 WebSearch
 20 EelcoVisser
  7 MartinBravenboer
  5 StanJarzabek
  1 PradeepikaIrangani
Jul 2005 1191 0 0 389 WebHome
102 WebNews
 74 WebIndex
 73 WebChanges
 68 WebStatistics
 67 PEPMNews?
 57 ConferenceHeader
 52 WebSearch
 50 WebNotify
 50 WebChanges500?
 49 WebChanges200?
 
Jun 2005 923 0 0 375 WebHome
 86 WebNews
 68 WebStatistics
 57 WebChanges
 46 PEPMNews?
 45 WebNotify
 42 WebIndex
 39 WebSearch
 37 ConferenceHeader
 26 WebLeftBar
 24 WebChanges500?
 
May 2005 848 7 0 371 WebHome
 53 WebNews
 51 WebStatistics
 45 ConferenceHeader
 42 PEPMNews?
 38 WebChanges
 33 WebIndex
 31 WebSearch
 26 WebPreferences
 24 WebNotify
 24 WebLeftBar
  7 EelcoVisser
Apr 2005 6648 36 0 2409 WebHome
975 CallForPapers
638 ElectronicSubmission?
298 GpceTutorialsAndWorkshops?
242 ImportantDates
181 ConferenceOrganization
148 CallForDemonstrations?
130 CallForWorkshops?
110 YoungResearchers?
102 GraphModelTransformations?
 93 CallForTechTalks
 23 AndrewMalton
 10 EugenioMoggi
  2 RobertGlueck
  1 EelcoVisser
Mar 2005 4848 35 1 2091 WebHome
696 CallForPapers
202 ImportantDates
178 ElectronicSubmission?
153 ConferenceOrganization
152 CallForDemonstrations?
132 CallForWorkshops?
131 GpceTutorialsAndWorkshops?
106 CallForTechTalks
 55 PEPMNews?
 52 WebIndex
 29 EugenioMoggi
  5 RobertGlueck
  2 EelcoVisser
Feb 2005 2975 7 0 1164 WebHome
364 CallForPapers
140 ImportantDates
137 ConferenceOrganization
 95 CallForWorkshops?
 84 CallForDemonstrations?
 72 CallForTechTalks
 50 PEPMNews?
 39 WebNews
 39 WebChanges
 38 WebNotify
  7 EugenioMoggi
Jan 2005 2719 19 0 1375 WebHome
211 CallForPapers
169 ConferenceOrganization
135 ImportantDates
 98 CallForWorkshops?
 74 CallForTechTalks
 59 PEPMNews?
 45 WebIndex
 42 WebChanges
 35 WebNews
 30 CallForDemonstrations?
 12 EugenioMoggi
  7 EelcoVisser
Dec 2004 1546 68 0 707 WebHome
125 ImportantDates
 92 ConferenceOrganization
 67 ConferenceVenue
 60 CallForWorkshops?
 37 WebIndex
 36 CallForTechTalks
 34 WebPreferences
 33 WebNews
 32 PEPMNews?
 25 WebChanges
 43 EugenioMoggi
 13 JeffGray
 10 EelcoVisser
  2 MartinBravenboer
Nov 2004 836 18 0 407 WebHome
 77 ImportantDates
 66 ConferenceOrganization
 38 ConferenceVenue
 31 PEPMNews
 28 CallForPapers
 25 WebNews
 20 ForOrganizers?
 19 WebIndex
  9 CallForWorkshops?
  8 ElectronicSubmission?
 11 EelcoVisser
  7 EugenioMoggi
Oct 2004 400 30 0 206 WebHome
 50 ConferenceOrganization
 38 ImportantDates
 27 ConferenceVenue
 17 ConferenceHeader
 14 WebIndex
 11 WebContents?
  5 PrintCall?
  4 WebNews
  4 CallForPapers
  2 GpceTutorials?
 27 EugenioMoggi
  2 MoggiE
  1 RobertGlueck

Notes:

  • Do not edit this topic, it is updated automatically. (You can also force an update)
  • TWikiDocumentation tells you how to enable the automatic updates of the statistics.
  • Suggestion: You could archive this topic once a year and delete the previous year's statistics from the table.
Finding topics

Tracking activity

Look and feel

  • WebPreferences: values of variables
  • WebContents?: web specific entries in the side bar
Workshops will be run by SPLASH this year. See SPLASH 2011 Call for Workshops for more information.

Number of topics: 72